package com.qt.bilibili.sort;

public class MonkeyEat {

    public static void main(String[] args) {
        int sumEating = getSumEating(10);
        System.out.println(sumEating);
        int pltNum = getPltNum(20);
        System.out.println(pltNum);
    }


    public static int getSumEating(int day){
        /*斐波那契数列
    猴子每天吃剩下桃子的 一半 再 多一个吃一个，第十天的时候 剩下1个；问原来有多少桃
     */
        //第10天：1
        //9天: ( 1 + 1) * 2 = 4
        //8天: (4 + 1) * 2 = 10
        if(day > 10 || day < 1){
            System.out.println("参数错误");
        }
        if(day == 1){
            return 1;
        }
        return (getSumEating(day - 1) + 1) * 2;
    }

    public static int getPltNum(int num){
        /*斐波那契数列
        总共是20阶楼梯， 它一次有可能 爬一层  或者 爬两层  或者 爬三层；
        问有多少种爬法
         */
        if(num == 1){
            return 1;
        }else if(num == 2){
            return 2;
        }
        if(num == 3){
            return 3;
        }

        return getPltNum(num - 1) + getPltNum(num - 2) + getPltNum(num - 3);

    }


}
